From 11f8c1ba6fb699d8dc8d40f0e8f65682943d12dc Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Tue, 27 Sep 2011 12:06:10 +0200 Subject: [PATCH] gtk: remove the private GTK_EXTEND/MODIFY_SELECTION_MOD_MASK and use the new public modifier abstraction API instead. --- gtk/gtkentry.c | 8 +++++--- gtk/gtkiconview.c | 29 ++++++++++++++++++++++++----- gtk/gtkprivate.h | 8 -------- gtk/gtktextview.c | 8 ++++++-- gtk/gtktreeview.c | 43 ++++++++++++++++++++++++++++++++++--------- 5 files changed, 69 insertions(+), 27 deletions(-) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index f9ad68ab3c..c22cb0eaf8 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -3784,14 +3784,16 @@ gtk_entry_button_press (GtkWidget *widget, else if (event->button == 1) { gboolean have_selection = gtk_editable_get_selection_bounds (editable, &sel_start, &sel_end); - + priv->select_words = FALSE; priv->select_lines = FALSE; - if (event->state & GTK_EXTEND_SELECTION_MOD_MASK) + if (event->state & + gtk_widget_get_modifier_mask (widget, + GDK_MODIFIER_INTENT_EXTEND_SELECTION)) { _gtk_entry_reset_im_context (entry); - + if (!have_selection) /* select from the current position to the clicked position */ sel_start = sel_end = priv->current_pos; diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 61175b48c8..10811d48b8 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -2018,6 +2018,15 @@ gtk_icon_view_button_press (GtkWidget *widget, if (event->button == 1 && event->type == GDK_BUTTON_PRESS) { + GdkModifierType extend_mod_mask; + GdkModifierType modify_mod_mask; + + extend_mod_mask = + gtk_widget_get_modifier_mask (widget, GDK_MODIFIER_INTENT_EXTEND_SELECTION); + + modify_mod_mask = + gtk_widget_get_modifier_mask (widget, GDK_MODIFIER_INTENT_MODIFY_SELECTION); + item = gtk_icon_view_get_item_at_coords (icon_view, event->x, event->y, FALSE, @@ -2043,7 +2052,7 @@ gtk_icon_view_button_press (GtkWidget *widget, gtk_icon_view_set_cursor_item (icon_view, item, cursor_cell); } else if (icon_view->priv->selection_mode == GTK_SELECTION_MULTIPLE && - (event->state & GTK_EXTEND_SELECTION_MOD_MASK)) + (event->state & extend_mod_mask)) { gtk_icon_view_unselect_all_internal (icon_view); @@ -2060,7 +2069,7 @@ gtk_icon_view_button_press (GtkWidget *widget, { if ((icon_view->priv->selection_mode == GTK_SELECTION_MULTIPLE || ((icon_view->priv->selection_mode == GTK_SELECTION_SINGLE) && item->selected)) && - (event->state & GTK_MODIFY_SELECTION_MOD_MASK)) + (event->state & modify_mod_mask)) { item->selected = !item->selected; gtk_icon_view_queue_draw_item (icon_view, item); @@ -2107,7 +2116,7 @@ gtk_icon_view_button_press (GtkWidget *widget, else { if (icon_view->priv->selection_mode != GTK_SELECTION_BROWSE && - !(event->state & GTK_MODIFY_SELECTION_MOD_MASK)) + !(event->state & modify_mod_mask)) { dirty = gtk_icon_view_unselect_all_internal (icon_view); } @@ -3566,9 +3575,19 @@ gtk_icon_view_real_move_cursor (GtkIconView *icon_view, if (gtk_get_current_event_state (&state)) { - if ((state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK) + GdkModifierType extend_mod_mask; + GdkModifierType modify_mod_mask; + + extend_mod_mask = + gtk_widget_get_modifier_mask (GTK_WIDGET (icon_view), + GDK_MODIFIER_INTENT_EXTEND_SELECTION); + modify_mod_mask = + gtk_widget_get_modifier_mask (GTK_WIDGET (icon_view), + GDK_MODIFIER_INTENT_MODIFY_SELECTION); + + if ((state & modify_mod_mask) == modify_mod_mask) icon_view->priv->modify_selection_pressed = TRUE; - if ((state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK) + if ((state & extend_mod_mask) == extend_mod_mask) icon_view->priv->extend_selection_pressed = TRUE; } /* else we assume not pressed */ diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h index b8bb90ecb9..0def8c12ee 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -67,14 +67,6 @@ const gchar *_gtk_get_data_prefix (); #define GTK_DEFAULT_ACCEL_MOD_MASK GDK_META_MASK #endif -#ifndef GDK_WINDOWING_QUARTZ -#define GTK_EXTEND_SELECTION_MOD_MASK GDK_SHIFT_MASK -#define GTK_MODIFY_SELECTION_MOD_MASK GDK_CONTROL_MASK -#else -#define GTK_EXTEND_SELECTION_MOD_MASK GDK_SHIFT_MASK -#define GTK_MODIFY_SELECTION_MOD_MASK GDK_MOD2_MASK -#endif - gboolean _gtk_fnmatch (const char *pattern, const char *string, gboolean no_leading_period); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 9b073345c4..e128c3a14d 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -4566,7 +4566,9 @@ gtk_text_view_button_press_event (GtkWidget *widget, GdkEventButton *event) if (gtk_text_buffer_get_selection_bounds (get_buffer (text_view), &start, &end) && gtk_text_iter_in_range (&iter, &start, &end) && - !(event->state & GTK_EXTEND_SELECTION_MOD_MASK)) + !(event->state & + gtk_widget_get_modifier_mask (widget, + GDK_MODIFIER_INTENT_EXTEND_SELECTION))) { priv->drag_start_x = event->x; priv->drag_start_y = event->y; @@ -6491,7 +6493,9 @@ gtk_text_view_start_selection_drag (GtkTextView *text_view, orig_start = ins; orig_end = bound; - if (button->state & GTK_EXTEND_SELECTION_MOD_MASK) + if (button->state & + gtk_widget_get_modifier_mask (GTK_WIDGET (text_view), + GDK_MODIFIER_INTENT_EXTEND_SELECTION)) { /* Extend selection */ GtkTextIter old_ins, old_bound; diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 43c3d60cbd..7cf74ddec7 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -2880,6 +2880,8 @@ gtk_tree_view_button_press (GtkWidget *widget, gboolean row_double_click = FALSE; gboolean rtl; gboolean node_selected; + GdkModifierType extend_mod_mask; + GdkModifierType modify_mod_mask; /* Empty tree? */ if (tree_view->priv->tree == NULL) @@ -3034,6 +3036,12 @@ gtk_tree_view_button_press (GtkWidget *widget, gtk_tree_path_free (anchor); } + extend_mod_mask = + gtk_widget_get_modifier_mask (widget, GDK_MODIFIER_INTENT_EXTEND_SELECTION); + + modify_mod_mask = + gtk_widget_get_modifier_mask (widget, GDK_MODIFIER_INTENT_MODIFY_SELECTION); + /* select */ node_selected = GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED); pre_val = gtk_adjustment_get_value (tree_view->priv->vadjustment); @@ -3044,9 +3052,9 @@ gtk_tree_view_button_press (GtkWidget *widget, { GtkCellRenderer *focus_cell; - if ((event->state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK) + if ((event->state & modify_mod_mask) == modify_mod_mask) tree_view->priv->modify_selection_pressed = TRUE; - if ((event->state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK) + if ((event->state & extend_mod_mask) == extend_mod_mask) tree_view->priv->extend_selection_pressed = TRUE; /* We update the focus cell here, this is also needed if the @@ -3063,12 +3071,12 @@ gtk_tree_view_button_press (GtkWidget *widget, if (focus_cell) gtk_tree_view_column_focus_cell (column, focus_cell); - if (event->state & GTK_MODIFY_SELECTION_MOD_MASK) + if (event->state & modify_mod_mask) { gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); gtk_tree_view_real_toggle_cursor_row (tree_view); } - else if (event->state & GTK_EXTEND_SELECTION_MOD_MASK) + else if (event->state & extend_mod_mask) { gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); gtk_tree_view_real_select_cursor_row (tree_view, FALSE); @@ -3111,9 +3119,9 @@ gtk_tree_view_button_press (GtkWidget *widget, tree_view->priv->rubber_band_y = event->y + tree_view->priv->dy; tree_view->priv->rubber_band_status = RUBBER_BAND_MAYBE_START; - if ((event->state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK) + if ((event->state & modify_mod_mask) == modify_mod_mask) tree_view->priv->rubber_band_modify = TRUE; - if ((event->state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK) + if ((event->state & extend_mod_mask) == extend_mod_mask) tree_view->priv->rubber_band_extend = TRUE; } } @@ -8572,9 +8580,20 @@ gtk_tree_view_real_move_cursor (GtkTreeView *tree_view, if (gtk_get_current_event_state (&state)) { - if ((state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK) + GdkModifierType extend_mod_mask; + GdkModifierType modify_mod_mask; + + extend_mod_mask = + gtk_widget_get_modifier_mask (GTK_WIDGET (tree_view), + GDK_MODIFIER_INTENT_EXTEND_SELECTION); + + modify_mod_mask = + gtk_widget_get_modifier_mask (GTK_WIDGET (tree_view), + GDK_MODIFIER_INTENT_MODIFY_SELECTION); + + if ((state & modify_mod_mask) == modify_mod_mask) tree_view->priv->modify_selection_pressed = TRUE; - if ((state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK) + if ((state & extend_mod_mask) == extend_mod_mask) tree_view->priv->extend_selection_pressed = TRUE; } /* else we assume not pressed */ @@ -10803,7 +10822,13 @@ gtk_tree_view_real_select_cursor_parent (GtkTreeView *tree_view) if (gtk_get_current_event_state (&state)) { - if ((state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK) + GdkModifierType modify_mod_mask; + + modify_mod_mask = + gtk_widget_get_modifier_mask (GTK_WIDGET (tree_view), + GDK_MODIFIER_INTENT_MODIFY_SELECTION); + + if ((state & modify_mod_mask) == modify_mod_mask) tree_view->priv->modify_selection_pressed = TRUE; } -- 2.30.2